from abc import ABC, abstractmethod
from bcat.gtp.serde.dev2.imap_access import IMapAccess
#TODO: deserialize_value ?????  

class IDeserializer(ABC):


    @abstractmethod
    def reader(self):
        pass

    @abstractmethod
    def deserialize_key(self, visitor):
        pass
    @abstractmethod
    def deserialize_bytes(self, visitor):
        pass
    @abstractmethod
    def deserialize_value(self, visitor):
        pass
    @abstractmethod
    def deserialize_list(self, visitor):
        pass
    @abstractmethod
    def deserialize_dict(self, visitor):
        pass

    @abstractmethod
    def is_end(self):
        pass


    @abstractmethod
    def deser_kv_separator(self):
        pass
